<?php
/*
 * @Author: CHINAKAIYUAN<sunkaiyuan@namenode.cn>
 * @Date: 2022-02-04 15:22:10
 * @LastEditTime: 2023-07-08 10:13:12
 * @LastEditors: 孙开源 && sunkaiyuan@namenode.cn
 * @Description: 
 */

namespace App\Providers;

use App\Models\BaseModel;

use App\Models\User;
use Illuminate\Support\ServiceProvider;
use EasyDingTalk\Application as DingTalkApp;

class DingTalkServiceProvider extends ServiceProvider
    {
    public $defaultconfig = [
        /*
             |-----------------------------------------------------------
             | 企业 AgentId
             |-----------------------------------------------------------
             */
        'AgentId'    => '',

        /*
        /*
        |-----------------------------------------------------------
        | 【必填】企业 corpId
        |-----------------------------------------------------------
        */
        'corp_id'    => '',

        /*
        |-----------------------------------------------------------
        | 【必填】应用 AppKey
        |-----------------------------------------------------------
        */
        'app_key'    => '',

        /*
        |-----------------------------------------------------------
        | 【必填】应用 AppSecret
        |-----------------------------------------------------------
        */
        'app_secret' => '',

        /*
        |-----------------------------------------------------------
        | 【选填】加解密
        |-----------------------------------------------------------
        | 此处的 `token` 和 `aes_key` 用于事件通知的加解密
        | 如果你用到事件回调功能，需要配置该两项
        */
        'token'      => '',
        'aes_key'    => '',

        /*
        |-----------------------------------------------------------
        | 【选填】后台免登配置信息
        |-----------------------------------------------------------
        | 如果你用到应用管理后台免登功能，需要配置该项
        */
        'sso_secret' => '',

        /*
        |-----------------------------------------------------------
        | 【选填】第三方网站 OAuth 授权
        |-----------------------------------------------------------
        | 如果你用到扫码登录、钉钉内免登和密码登录第三方网站，需要配置该项
        */
        'oauth'      => [
            /*
            |-------------------------------------------
            | `app-01` 为你自定义的名称，不要重复即可
            |-------------------------------------------
            | 数组内需要配置 `client_id`, `client_secret`, `scope` 和 `redirect` 四项
            |
            | `client_id` 为钉钉登录应用的 `appId`
            | `client_secret` 为钉钉登录应用的 `appSecret`
            | `scope`:
            |     - 扫码登录第三方网站和密码登录第三方网站填写 `snsapi_login`
            |     - 钉钉内免登第三方网站填写 `snsapi_auth`
            | `redirect` 为回调地址
            */
        ],
        /*
        |-----------------------------------------------------------
        | 【选填】日志定义
        |-----------------------------------------------------------
        |  默认目录是sys_get_temp_dir() . '/EasyDingTalk.log'，
        |  默认level 是 debug
        enable  是否开启
        */
        'log'        => [
            'enable' => true,
            'path'   => '/home/cat/soft/DingTalk.log',
            'level'  => 'debug'
        ],
        'app'        => [
            'robot01' => [
                //以下三个是 H5,小程序，机器人公有项
                'AgentId'    => '',
                'kind'       => 'robot',
                //必填
                "app_key"    => "",
                "app_secret" => "",
            ], 
        ]
    ];

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
        {
        }

    /**
     * Boot the authentication services for the application.
     *
     * @return void
     */
    public function boot()
        {
        $this->app['DingTalk'] = function ()
            {
            return new DingTalkApp($this->defaultconfig);
            };
        }
    }